<!–markdown–>#EdgeInsets
API文档对其的描述是:
// specify amount to inset (positive) for each of the edges. values can be negative to 'outset'
渣翻:指定一定数量的偏移,到容器的边缘,值可以是为负值。
类似于 css中的 padding,却又比padding强大得多,利用他可以给button作一些神奇的布局,可惜目前我只在uibutton上看到过。
<p><!–more–></p>
#关于NSSet 和NSOrderSet
NSSet是个不可变无序的唯一的对象集合,这里的唯一比较基于值,而非内存地址,很好奇内部是如何实现两个对象快速比较值。
最大的优点: 速度比nsarray快得快, 类似于hash.
NSOrderSet 是NSSet 和NSArray的集合体,他可以使用objectAtIndex之类的方法,但是子对象依然要求唯一。
官方说 NSOrderSet拥有比NSSet还要快的性能(变态...),但是我个人测试了一下,100W条简单对象(1-100W,字符对象)的情况下,取10次平均值,环境是虚拟机。
NSOrderSet 拥有 比NSSet快得快的多的遍历速度。 平均 NSOrderSet3倍于NSset
NSOrderSet的添加子对象速度要稍慢于NSset,大约是130~150%左右。
#关于UIWebView加载内容不释放内存
UIWebView使用loadRequest 加载内容时经常会造成内存无法释放,即使UIWebView自身已经销毁或者重新load一个空的内容进去。
只要使用 loadData 方法就能解决上面这个问题,在不需要用到这个内容的时候将NSData=nil.然后uiwebView loadHTMLString @""空内容,就可以马上清空掉所占内容,在data=nil的瞬间。<font color='red'>我果然很聪明</font>
#UIWebView滚动时隐藏头部和脚部黑块
UIwebView在滚动时在顶部和脚部会有一块 黑色渐变矩形,显得巨丑。在ios7以后可以通过设置uiwebView.backgroundColor或uiwebView.scrollView.backgroundColor设置背景色遮盖。在ios7以下版本可以通过添加像 uitableView 类似的 上拉刷新View,和下拉刷新View这种方式来隐藏.但是,添加底部的空白view时,我们需要知道内容页的高度,所以只能在UIwebView didLoadFinsh 时通过javascript脚本去获取高度之后再设置 底部的空白view
NSString *height_str= [webView stringByEvaluatingJavaScriptFromString: @"document.body.offsetHeight"];
int height1 = [height_str intValue]+17;
//在ios7以下版本中,无法通过设置 webView.backgroundColor 或 webView.scrollView.backgroundColor 来盖掉背后的黑乎乎,通过添加
// ’上拉刷新‘ 和‘下拉刷新’ view 来解决这个问题
if(ISNOTIOS7){
UIView *headerView=[[UIView alloc] initWithFrame:CGRectMake(0,0-height1, webView.bounds.size.width, height1)];
headerView.backgroundColor=[UIColor whiteColor];
UIView *footerView=[[UIView alloc] initWithFrame:CGRectMake(0,height1, webView.bounds.size.width,height1)];
footerView.backgroundColor=[UIColor whiteColor];
[webView.scrollView addSubview:headerView];
[webView.scrollView addSubview:footerView];
}
#关于Xcode显示空格字符解决方案
在安装了新版的xcode之后,发现代码区出现了很多锯齿状的空格符号,如下图:

十分烦,解决方案:Editor–> Hide Invisibles
#关于 CocoaPods慢的问题
使用 pod install --verbose --no-repo-update 可以缓解一下,比 pod install 要快些